/**
 * 
 */
package com.ubo.java.associations;

import java.util.HashMap;
import java.util.Map;

/**
 * Provider d'identifiants pour les associations.
 * 
 * @author saludegu
 * 
 */
public class EntityIdProvider {

	/**
	 * Compteur, servant à attribuer les identifiants.
	 */
	protected Integer mCpt;

	/**
	 * Map référencant les identifiants en fonction du nom des classifiers.
	 */
	protected Map<String, Integer> mMap;

	/**
	 * 
	 * Constructor
	 * 
	 */
	public EntityIdProvider() {
		mCpt = 0;
		mMap = new HashMap<String, Integer>();
	}

	/**
	 * Renvoie l'identifiant du classifier en fonction du nom.
	 * 
	 * @param name
	 * @return
	 */
	public int addEntity(String name) {
		if (!mMap.containsKey(name))
			mMap.put(name, mCpt++);
		return mMap.get(name);
	}

	/**
	 * Renvoie l'id si il existe ou un nouveau sinon sinon.
	 * 
	 * @param name
	 * @return
	 */
	public int getId(String name) {
		if (!mMap.containsKey(name))
			mMap.put(name, mCpt++);
		return mMap.get(name);
	}
}